package com.example.diceroliar

import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
import androidx.compose.foundation.Image
import androidx.compose.foundation.background
import androidx.compose.foundation.border
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.Button // Button 依然使用 material3
import androidx.compose.material3.ButtonDefaults // ButtonDefaults 依然使用 material3
import androidx.compose.material3.Scaffold
import androidx.compose.material3.Text
import androidx.compose.runtime.*
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Brush
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.graphicsLayer
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.example.diceroliar.ui.theme.DiceroliarTheme
import androidx.compose.ui.layout.ContentScale

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        enableEdgeToEdge()
        setContent {
            DiceroliarTheme {
                Scaffold(
                    modifier = Modifier.fillMaxSize(),
                    containerColor = Color.Transparent
                ) { innerPadding ->
                    ContentContainer(modifier = Modifier.padding(innerPadding))
                }
            }
        }
    }
}

@Composable
fun ContentContainer(modifier: Modifier = Modifier) {
    // 定义六段秋天风景文字介绍
    val autumnTexts = remember {
        listOf(
            "秋风习习，落叶金黄，展现着大自然最绚烂的色彩，带来宁静与丰收的气息。",
            "层林尽染，山野间五彩斑斓，仿佛一幅浓墨重彩的油画，令人心旷神怡。",
            "秋雨绵绵，洗涤着尘埃，空气中弥漫着泥土的芬芳与落叶的清香。",
            "夕阳西下，余晖洒满大地，将金黄的稻田染成一片耀眼的光海。",
            "果实累累，挂满枝头，农家院里一片繁忙，预示着来年的好收成。",
            "秋日的天空，高远而湛蓝，白云悠悠，仿佛诉说着季节的静谧与深邃。"
        )
    }

    // 管理当前文字索引
    var textIndex by remember { mutableStateOf(0) }
    // 管理当前图片（骰子结果）
    var diceResult by remember { mutableStateOf(1) }

    // 根据 diceResult 确定要显示的图片资源 ID
    val currentImageResource = when (diceResult) {
        1 -> R.drawable.dice_1
        2 -> R.drawable.dice_2
        3 -> R.drawable.dice_3
        4 -> R.drawable.dice_4
        5 -> R.drawable.dice_5
        6 -> R.drawable.dice_6
        else -> R.drawable.dice_1 // 默认情况
    }

    // 使用 Box 来创建具有圆角和阴影的容器，模拟 Card 的效果
    Box(
        modifier = modifier
            .fillMaxSize()
            .padding(20.dp) // Box 的外边距
            .background(
                color = Color.White.copy(alpha = 0.85f), // Box 背景色
                shape = RoundedCornerShape(20.dp) // Box 的圆角
            )
            .graphicsLayer { // 添加阴影效果
                shadowElevation = 8.dp.toPx()
                shape = RoundedCornerShape(20.dp) // 阴影应用的形状
                clip = true // 裁剪到形状
            },
        contentAlignment = Alignment.Center // Box 内部内容居中
    ) {
        Column(
            modifier = Modifier
                .fillMaxSize()
                .padding(20.dp), // Box 内部 padding
            verticalArrangement = Arrangement.SpaceEvenly, // 元素之间平均分配空间
            horizontalAlignment = Alignment.CenterHorizontally
        ) {
            // 图片区域
            Image(
                painter = painterResource(id = currentImageResource),
                contentDescription = "骰子图片 $diceResult",
                modifier = Modifier
                    .weight(1f) // 让图片区域占据大部分空间
                    .fillMaxWidth()
                    .padding(16.dp) // 图片内容与边框的内边距
                    .background(
                        color = Color.White, // 图片本身的背景色
                        shape = RoundedCornerShape(16.dp) // 图片背景的圆角
                    )
                    .border( // 添加图片边框
                        width = 3.dp,
                        color = Color(0xFFFFA000), // 较深的秋季橙色边框
                        shape = RoundedCornerShape(16.dp) // 边框的圆角
                    ),
                contentScale = ContentScale.Fit
            )

            Spacer(modifier = Modifier.height(24.dp)) // 增加图片与文字之间的间距

            // 文字区域
            Text(
                text = autumnTexts[textIndex],
                textAlign = TextAlign.Center,
                modifier = Modifier
                    .padding(horizontal = 16.dp)
                    .fillMaxWidth(),
                fontSize = 16.sp,
                fontWeight = FontWeight.Medium,
                color = Color(0xFF5D4037)
            )

            Spacer(modifier = Modifier.height(24.dp)) // 增加文字与按钮之间的间距

            // 按钮区域
            Row(
                modifier = Modifier.fillMaxWidth(),
                horizontalArrangement = Arrangement.SpaceEvenly,
                verticalAlignment = Alignment.CenterVertically
            ) {
                // 按钮1: 切换文字介绍
                Button(
                    onClick = {
                        textIndex = (textIndex + 1) % autumnTexts.size
                    },
                    colors = ButtonDefaults.buttonColors(
                        containerColor = Color(0xFFFFA000), // 橙色按钮背景
                        contentColor = Color.White
                    ),
                    shape = RoundedCornerShape(10.dp),
                    modifier = Modifier.height(48.dp)
                ) {
                    Text(text = "下一个介绍", fontWeight = FontWeight.Bold)
                }

                // 按钮2: 切换图片（掷骰子）
                Button(
                    onClick = {
                        diceResult = (1..6).random()
                        // 保持图片切换不影响文字
                    },
                    colors = ButtonDefaults.buttonColors(
                        containerColor = Color(0xFFFFE082), // 浅黄色按钮背景
                        contentColor = Color(0xFF5D4037) // 棕色文字
                    ),
                    shape = RoundedCornerShape(10.dp),
                    modifier = Modifier.height(48.dp)
                ) {
                    // *** 这里修改按钮文字为 "下一张图片" ***
                    Text(text = "下一张图片", fontWeight = FontWeight.Bold)
                }
            }
        }
    }
}

@Preview(showBackground = true)
@Composable
fun ContentContainerPreview() {
    DiceroliarTheme {
        Box(modifier = Modifier.fillMaxSize().background(Color.LightGray)) {
            ContentContainer()
        }
    }
}